草庐IT

c++ - SIMD C++ 库

全部标签

java - 有没有办法在编译时为Java定义一个常量值

当我以前用C/C++编写库时,我养成了使用返回编译日期/时间的方法的习惯。这总是被编译到库中,因此可以区分库的构建。我通过在代码中返回#define得到了这个:C++:#ifdef_BuildDateTime_char*SomeClass::getBuildDateTime(){return_BuildDateTime_;}#elsechar*SomeClass::getBuildDateTime(){return"Undefined";}#endif然后在编译时,我在构建脚本中有一个“-D_BuildDateTime_=Date”。有没有什么方法可以在Java中实现这个或类似的功能,

java - 如何在 Eclipse 中有效地调试用 JNI 包装的 C 代码? (安卓开发)

我有一个段错误,但我完全不知道如何找到它。提示? 最佳答案 您可以使用AndroidNDKStacktraceAnalyzer获取导致崩溃的C函数的位置。.步骤在thewiki,但基本上你需要从logcat获取堆栈跟踪到一个文件(adblogcat>mycrash.log),然后将你的库转储到一个文本文件,然后在它们两个上运行程序。这是我用来做很多事情的shell脚本:#!/bin/shiftest$#-lt2;thenecho"ExtractreadablestacktracefromAndroidlogcatcrash"echo

java - 我应该如何为 JNI 加载 native 库以避免 UnsatisfiedLinkError?

我想在Ubuntu8.10上使用JNI,使用Eclipse和gcc(Ubuntu的标准版本,如果有的话)。尽管make文件成功创建了我的库,但我似乎无法加载它。主要的Java类如下:classHello{publicnativevoidsayHello();static{System.loadLibrary("hello.so");}publicstaticvoidmain(String[]args){Helloh=newHello();h.sayHello();}}我的make文件是这样的;all:hello.sohello.so:Hello.ogcc-shared-ohello.s

java - 与本地编译语言相比,使用虚拟机编译(例如 JVM)有什么优势?

我听说java的优点是人们可以编写代码,为JVM编译它,然后在任何地方运行它。每个人只需要一个适用于他们平台的JVM应用程序。当然,它看起来与当前情况类似,每个人都有一个特定于其平台的编译器。所以优势不能用那个来解释。但我想我看到了解释..问题一定是在java情况下,你不能或不打算以特定于操作系统的方式直接访问真实机器。我想这意味着在其他语言中,代码本身必须根据它运行的计算机进行修改。任何人都可以提供这方面的简短示例,例如演示此内容的HelloWorld程序吗?毫无疑问,它会在非Java中,例如C因为这不是HelloWorld程序中通常会发生的事情,也不是自从我使用有关Java的书籍以

python - 我如何用 Perl 解析 C 头文件?

我有一个头文件,其中有一个大结构。我需要使用一些程序读取这个结构并对结构的每个成员进行一些操作并将它们写回。例如我有一些像这样的结构constBYTESome_Idx[]={4,7,10,15,17,19,24,29,31,32,35,45,49,51,52,54,55,58,60,64,65,66,67,69,70,72,76,77,81,82,83,85,88,93,94,95,97,99,102,103,105,106,113,115,122,124,125,126,129,131,137,139,140,149,151,152,153,155,158,159,160,163,1

python - 使用 distutils 的 setup.py 编译 C 共享库,当库依赖于第二个共享库时

我在OSX上,试图用distutils的setup.py在C中编译一个共享库(使用ctypes在python中使用)。我是distutils的新手,但是当我要编译的共享库(libreboundx.so)依赖于另一个共享库(librebound.so)时,我遇到了问题。明确地,在modify_orbits_direct.c中我有#include"rebound.h"rebound.h在目录/Users/dt/rebound/src/下,rebound.h中的所有函数都在/Users/dt/rebound/下的共享库librebound.so中。与cc的链接看起来像。cc-fPIC-sha

python - 我应该将 C 库与我的 Python 应用程序捆绑在一起吗?

如果我有一个依赖于某些C库(例如用于数值计算的Gnu科学库(GSL))的Python包,将库与我的代码捆绑在一起是个好主意吗?我想让我的包尽可能容易地为用户安装,我不希望他们必须手动下载C库并提供包含路径。此外,我始终可以确保我发布的库版本与我的代码兼容。但是,如果用户已经安装了库,是否可能会发生冲突,或者还有其他原因导致我不应该这样做?我知道我可以通过提供二进制分发版让用户更轻松,但我想避免为所有可能的操作系统维护二进制分发版。所以,我想坚持使用源代码分发,但对于用户(自豪地拥有C编译器)来说,安装应该像pythonsetup.pyinstall一样简单。

python - CTRL+C 不会中断在 Python 中使用 CTYPES 对共享库的调用

当调用在C共享库(动态库)中执行的循环时,Python不会收到KeyboardInterrupt,也不会响应(或处理)CTRL+C。我该怎么办? 最佳答案 除非你使用PyDLL或PYFUNCTYPE;GIL在ctypes调用期间被释放。因此,如果C代码没有安装自己的信号处理程序,Python解释器应该通过在主线程中引发KeyboardInterrupt来处理SIGINT。让Python代码在主线程中运行;您可以将ctypes调用放入后台线程:importthreadingt=threading.Thread(target=ctype

python - 如何使用 sly 只获取功能 block

我需要获取功能block(定义和所有内容,而不仅仅是声明),以便获取功能依赖图。从函数依赖关系图中,识别连接的组件并模块化我庞大的C代码库,一次一个文件。问题:我需要一个C解析器来识别功能block,仅此而已。我们有自定义类型等,但签名是storage_classreturn_typefunction_name(commaseparatedtypevaluepairs){//somecontentIviewasgenericstuff}我提出的解决方案:显然,像任何理智的人一样使用sly和pycparser。pycparser的问题:需要从其他文件编译预处理器,只是为了识别代码块。在我

python - Cython 对导入做了什么?

我想创建一个Python扩展,我非常喜欢使用Cython的想法。主要是为了获得更多关于它的知识并利用速度提升(如果有的话)。我已经阅读了相当多的Cython文档,但我(还)不是计算机科学家并且没有深入的知识来理解低级基础知识,因此我提出以下问题的原因:我只是想知道,如果我在我正在开发的Python扩展中使用外部导入(例如,ORM或SQL库或任何其他第3方库)会怎样?Cython是如何处理的?如果这个导入的库/扩展是纯Python的还是编译的,会有区别吗?处理这个问题的正确方法是什么?谢谢。附言。问题以粗体显示。 最佳答案 cytho